package cn.kgc.anno;

import java.lang.annotation.*;

/**
 * @Author: 课工场
 * @Version: v1.0  2023/2/14
 * @Description:
 * 注解的基本使用
 * 1.定义注解  @interface
 * 2.注解作用  注解就是还有特定意义的标识符
 * 3.分类
 *      1.修饰注解的注解 元注解
 *          @Target(ElementType.TYPE)  标识当前注解可以使用的位置
 *          enum ElementType  枚举
 *               TYPE   -> Class, interface (including annotation type), or enum declaration
 *               FIELD   属性
 *               METHOD  方法
 *               PARAMETER  参数
 *               CONSTRUCTOR  构造方法
 *               PACKAGE        包
 *          @Retention(RetentionPolicy.SOURCE)   注解的生命周期
 *          enum RetentionPolicy
 *           SOURCE   源码
 *           CLASS    字节码
 *           RUNTIME  运行期
 *
 *      @Documented     标识注解要生成在API文档中
 *      @Inherited     标识当前注解可被继承
 *      2.JDK提供的注解
 *      3.自定义注解  @interface
 */
@Target({ElementType.FIELD,ElementType.METHOD,ElementType.TYPE})
@Retention(RetentionPolicy.SOURCE)
@Documented
@Inherited
public @interface MyAnnotation {

}
